output variable (Terraform)
JSのconsole.logみたいな感じかなmrsekut.icon
code:例.tf
output "public_ip" {
value = aws_instance.example.public_ip
description = "The public IP address of the web server"
}
λ terraform applyの実行後に出力される
λ terraform outputを実行しても確認できる
GPT-4.icon
Terraform の output 変数は、デバッグ だけでなく、以下のような 実用的な用途 にも使われます:
🔍 1. デバッグ/確認用途
最もシンプルな使い方で、たとえば作成されたリソースの IP アドレスや ARN などを表示させるのに使います。
code:hcl
output "instance_ip" {
value = aws_instance.example.public_ip
}
terraform apply のあとに IP アドレスが表示されて便利です。
🔗 2. 他の Terraform モジュールへの値の受け渡し
モジュール化している場合に、モジュールの出力値として必要な値を外部に渡すときに使います。
code:hcl
module "vpc" {
source = "./vpc"
}
output "vpc_id" {
value = module.vpc.vpc_id
}
このようにして、上位の構成ファイルから module.vpc.vpc_id でアクセスできます。
💻 3. CI/CDなど外部ツールとの連携
CIツールやスクリプトなどで、Terraform の出力値を取得して後続処理に使いたいときに使います。
code:bash
terraform output -raw instance_ip
これで IP アドレスなどをシェルスクリプトに渡すことができます。
📦 4. State の中身をわかりやすく可視化
たとえば S3 バケット名や URL など、State の中にある値を手動で拾うより terraform output で一覧表示した方が楽、という場面も多いです。